Most people now have a collection of small plastic cards, representing various credit cards, store cards, identity cards, membership cards, etc. Information about the card and its owner (e.g., account details) is normally printed or embossed on the card, and may also be stored in some form of magnetic strip. In recent years, smartcards have also proliferated. Smartcards are standardized portable articles defined in ISO standard 7816. Smartcards are typically used to provide secure management of confidential data and to provide authentication.
A smartcard incorporates within its plastic case a microelectronic memory and also an embedded processor. The memory is used to store various data including, for example, private keys, identity certificates, email certificates, etc. A single personal identification number (PIN) is used to access the data stored on the smartcard.
A smartcard may also host software that manipulates the stored data. The software may be in the form of a Java applet, and a Java virtual machine (VM) may be provided within the smartcard to allow the execution of Java applets. A Java applet typically creates a container to hold required data and ensures that the container is only accessed by an authorized user. In particular, an applet may store a PIN associated with the container and allow a user to access the contents of the container only if the user provides a correct PIN.